﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;

using Padelcenter.Common;
using Padelcenter.DataAccess;

namespace Padelcenter.BusinessLogic.Get
{
    public class GetDomicilio : IBusinessLogic 
    {
        public GetDomicilio() { }

        public void Invoke()
        {
            Domicilio_Select oDomicilioSelect = new Domicilio_Select();
            oDomicilioSelect.Domicilio = this.Domicilio;
            this.Resultset = oDomicilioSelect.Get();
        }

        public List<Domicilio> DomicilioList()
        {
            this.Invoke();

            List<Domicilio> listaDomicilio = new List<Domicilio>();

            DataTable dTable = new DataTable();
            dTable = this.Resultset.Tables[0];

            if (dTable.Rows.Count > 0)
            {
                Domicilio oDomicilio;
                foreach (DataRow r in dTable.Rows)
                {
                    oDomicilio = new Domicilio();

                    oDomicilio.IdDomicilio = Convert.ToInt32(r["idDomicilio"]);
                    oDomicilio.IdUsuario = Convert.ToInt32(r["idUsuario"]);
                    oDomicilio.Direccion = r["Direccion"].ToString();
                    oDomicilio.Ciudad = r["Ciudad"].ToString();
                    oDomicilio.CodigoPostal = r["CodigoPostal"].ToString();
                    oDomicilio.IdProvincia = Convert.ToInt32(r["idProvincia"]);
                    oDomicilio.Provincia = r["Provincia"].ToString();

                    Pais oPais = new Pais();
                    oPais.IdPais = Convert.ToInt32(r["idPais"]);
                    GetPais oGetPais = new GetPais();
                    oGetPais.Pais = oPais;
                    oDomicilio.Pais = oGetPais.PaisList()[0];

                    oDomicilio.FechaAlta = Convert.ToDateTime(r["FechaAlta"]);
                    oDomicilio.EsRegistro = Convert.ToBoolean(r["EsRegistro"]);
                    oDomicilio.EsPrincipal = Convert.ToBoolean(r["EsPrincipal"]);
                    oDomicilio.Activo = Convert.ToBoolean(r["Activo"]);

                    listaDomicilio.Add(oDomicilio);
                }
            }

            return listaDomicilio;
        }
        
        private DataSet _resultset;
        private Domicilio _domicilio;

        public Domicilio Domicilio
        {
            get { return _domicilio; }
            set { _domicilio = value; }
        }

        public DataSet Resultset
        {
            get { return _resultset; }
            set { _resultset = value; }
        }
        
    }
}
